const pageInterceptor = require('../../components/pageInterceptor').pageInterceptor;
const api = require('../../api/api');
const request = require('../../components/request');
const util = require('../../utils/util');

// Page({
pageInterceptor({
  data: {
    /**
     * 一级分类列表
     */
    topCategories: [],
    /**
     * 二级分类列表
     */
    subCategories: [],
    /**
     * 一级分类中被选中的那个高亮显示
     */
    highlight: ['highlight', '', ''],
    /**
     * 一级分类
     */
    firstLevelCategory: ''
  },
  onLoad: function () {
    // 查询顶级分类
    this.getCategory(null);
    // 设置图片的宽度
    this.setImageWidth();
    // 设置侧边栏的高度
    this.setSideHeight();
  },
  /**
   * 设置图片的宽度
   */
  setImageWidth: function () {
    var screenWidth = getApp().screenWidth;
    var imageWidth = (screenWidth - 130) / 3 - 5;
    this.setData({
      imageWidth: imageWidth
    });
  },
  /**
   * 设置侧边栏的高度
   */
  setSideHeight: function () {
    this.setData({
      sidebarHeight: getApp().screenHeight
    });
  },
  /**
   * 单击侧边栏上的一级分类
   * @param {*} e 
   */
  tapTopCategory: function (e) {
    // 分类id
    var categoryId = e.currentTarget.dataset.objectId;
    // 查询一级分类下的所有子类
    this.getCategory(categoryId);
    // 设定高亮状态
    var index = parseInt(e.currentTarget.dataset.index);
    this.setHighlight(index);
    // 查询一级分类的图片
    this.getFirstLevelCategoryBanner(categoryId);
  },
  /**
   * 查询分类
   * @param {*} parentCategoryId 
   */
  getCategory: function (parentCategoryId) {
    // 查询顶级分类，设定查询条件parentCategoryId为null
    if (null == parentCategoryId) {
      // 查询一级分类
      request.get(api.data.prefix + api.data.url.category.findTopCategory, null, {
        'content-type': 'application/json',
      }).action((res) => {
        console.log(`接口${api.data.url.category.findTopCategory}：${JSON.stringify(res)}`);
        this.setData({
          topCategories: res.data.result
        });
        // 查询默认的二级分类
        this.getCategory(this.data.topCategories[0].id);
        // 查询默认的一级分类的图片
        this.getFirstLevelCategoryBanner(this.data.topCategories[0].id);
      }).catch(err => {
        console.error(err);
      });
    } else {
      // 查询二级分类
      var url = util.restfulFormat(api.data.prefix + api.data.url.relCategoryImage.findSubCategoryListAndImageListByParentCategoryId, { parentCategoryId: parentCategoryId });
      request.get(url, null, {
        'content-type': 'application/json',
      }).action((res) => {
        console.log(`接口${api.data.url.relCategoryImage.findSubCategoryListAndImageListByParentCategoryId}：${JSON.stringify(res)}`);
        this.setData({
          subCategories: res.data.result
        });
      }).catch(err => {
        console.error(err);
      });
    }
  },
  /**
   * 设置一级分类被选中的高亮显示
   * @param {*} index 
   */
  setHighlight: function (index) {
    var highlight = [];
    for (var i = 0; i < this.data.topCategories.length; i++) {
      highlight[i] = '';
    }
    highlight[index] = 'highlight';
    this.setData({
      highlight: highlight
    });
  },
  /**
   * 点击二级分类的图片，跳转到列表页面
   * @param {*} e 
   */
  avatarTap: function (e) {
    // 分类id
    var categoryId = e.currentTarget.dataset.objectId;
    wx.navigateTo({
      url: "../goods/list/list?categoryId=" + categoryId
    });
  },
  /**
   * 查询自己分类的图片
   * @param {*} parent 
   */
  getFirstLevelCategoryBanner: function (categoryId) {
    var that = this;
    var url = util.restfulFormat(api.data.prefix + api.data.url.relCategoryImage.findCategoryAndImageUrlById, { categoryId: categoryId });
    request.get(url, null, {
      'content-type': 'application/json',
    }).action((res) => {
      console.log(`接口${api.data.url.category.findCategoryAndImageUrlById}：${JSON.stringify(res)}`);
      that.setData({
        firstLevelCategory: res.data.result
      });
    }).catch(err => {
      console.error(err);
    });
  },
  /**
   * 点击一级分类的图片，跳转到详情页面
   */
  showGoods: function (e) {
    // 分类id
    var categoryId = e.currentTarget.dataset.objectId;
    wx.navigateTo({
      url: '../goods/detail/detail?objectId=' + categoryId
    });
  }
  // })
}, true)